The present invention relates to computing systems and methods and, more particularly, to computing systems including a storage system with buffer memory.
FIG. 1 is a block diagram illustrating a generic computing system. The computing system includes a host 10, e.g., a host computer system, and storage 20. The host 10 includes a central processing unit (not shown) and a main memory (not shown). The storage 20 is connected to the host 10 using a standardized interface, such as a small computer system interconnect (SCSI) interface, an enhanced small device interface (ESDI), or an intelligent drive electronic (IDE) interface. The storage 20 includes a storage medium 22, such as a hard disk or a floppy disk, a buffer memory 24 and a controller 26. The controller 26 is connected to the storage medium 22 and the buffer memory using conventional interfaces. The buffer memory 24 includes memory, such as a static random access memory SRAM or a dynamic random access memory DRAM. The buffer memory 24 is used for improving a write performance of the storage 20.
FIG. 2 is a view showing exemplary file processing for the computing system shown in FIG. 1. When an application program is executed at a high level, such as at the host 10, the application program generates files and the generated files are managed by a file system such as a file allocation table (FAT) file system. If the application program writes data in the generated files, the written data is transmitted to lower level, such as the storage 20, under control of the central processing unit. The transmitted data is temporally stored in the buffer memory of the storage 20. When the host 10 requests a file, data of the requested file is directly transferred from the storage 20 to the main memory of the host 10 or the data of the requested file is transferred to the main memory of the host 10 through the buffer memory 24. Data transferred through the buffer memory 24 may be temporally stored in the buffer memory 24.
Because the capacity of the buffer memory 24 usually is small in comparison to the capacity of the storage medium 22, it typically is not possible to store all of data transferred from the main memory to the storage medium 22 in the buffer memory 24. Therefore, the data stored in the buffer memory 24 is intermittently transferred to the storage medium 22 under control of the controller 26. The transfer of data from the buffer memory 24 to the storage medium 22 typically is automatically performed without intervention of the host 10. For example, the data temporally stored in the buffer memory 24 may be automatically transferred to the storage medium 22 if the buffer memory 24 lacks room for storing new data when the host 10 requests to perform a write operation, or if the storage 20 is in an idle state wherein no requests are received from the host 10 within a predetermined time period.
The above-mentioned computing system may have disadvantages. When data of a file processed by an application program of the host 10 is deleted, the data is treated as the deleted file by the file system at the host 10. Even if the data is considered deleted at the level of the host 10, the data may actually still be stored in the buffer memory 24. The data stored in the buffer memory 24 may then be automatically transferred to the storage medium 22 without intervention of the host 10 when the buffer memory 24 lacks room for storing new data. Although the data stored in the buffer memory becomes invalid because of the deletion at the high level, the invalid data may be unnecessarily written in the storage medium 22 because the controller 26 typically cannot determine the validity of data stored in the buffer memory 24. Accordingly, write performance of the storage 20 may be degraded, and a life time of the storage 20 may be shortened due to the unnecessary write operations. In addition, power may be wasted by unnecessary write operations.